home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / RIncludes / ImageCodec.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  6.4 KB  |  229 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        ImageCodec.r
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 3.0
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __IMAGECODEC_R__
  19. #define __IMAGECODEC_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #include "Components.r"
  26. #include "ImageCompression.r"
  27. #define kParameterTitleName             'name'
  28. #define kParameterTitleID                 1
  29.  
  30. #define kParameterWhatName                 'what'
  31. #define kParameterWhatID                 1
  32.  
  33. #define kParameterVersionName             'vers'
  34. #define kParameterVersionID             1
  35.  
  36. #define kParameterRepeatableName         'pete'
  37. #define kParameterRepeatableID             1
  38.  
  39.  
  40.     #define kParameterRepeatableTrue    long { "1" }
  41.     #define kParameterRepeatableFalse    long { "0" }
  42.  
  43. #define kParameterAlternateCodecName     'subs'
  44. #define kParameterAlternateCodecID         1
  45.  
  46. #define kParameterSourceCountName         'srcs'
  47. #define kParameterSourceCountID         1
  48.  
  49. #define kParameterDependencyName         'deep'
  50. #define kParameterDependencyID             1
  51.  
  52.  
  53.     #define kParameterListDependsUponColorProfiles    OSType { "prof" }
  54.     #define kParameterListDependsUponFonts            OSType { "font" }
  55.  
  56. #define kParameterEnumList                 'enum'
  57. #define kParameterAtomTypeAndID         'type'
  58.  
  59.         #define kNoAtom                 OSType { "none" }
  60.         #define kAtomNoFlags             long { "0" }
  61.         #define kAtomNotInterpolated     long { "1" }
  62.         #define kAtomInterpolateIsOptional     long { "2" }
  63.  
  64. #define kParameterDataType                 'data'
  65.  
  66.         #define kParameterTypeDataLong         long { "2" }
  67.         #define kParameterTypeDataFixed     long { "3" }
  68.         #define kParameterTypeDataRGBValue     long { "8" }
  69.         #define kParameterTypeDataDouble     long { "11" }
  70.         #define kParameterTypeDataText         OSType { "text" }
  71.         #define kParameterTypeDataEnum        OSType { "enum" }
  72.         #define kParameterTypeDataBitField     OSType { "bool" }
  73.         #define kParameterTypeDataImage        OSType { "imag" }
  74.  
  75. #define kParameterDataRange             'rang'
  76. #define kParameterDataBehavior             'ditl'
  77.  
  78.     // items edited via typing
  79.         #define kParameterItemEditText         OSType { "edit" }
  80.         #define kParameterItemEditLong         OSType { "long" }
  81.         #define kParameterItemEditFixed     OSType { "fixd" }
  82.         #define kParameterItemEditDouble     OSType { "doub" }
  83.  
  84.     // items edited via control(s)
  85.         #define kParameterItemPopUp         OSType { "popu" }
  86.         #define kParameterItemRadioCluster     OSType { "radi" }
  87.         #define kParameterItemCheckBox         OSType { "chex" }
  88.         #define kParameterItemControl         OSType { "cntl" }
  89.         
  90.     // special user items
  91.         #define kParameterItemLine             OSType { "line" }
  92.         #define kParameterItemColorPicker     OSType { "pick" }
  93.         #define kParameterItemGroupDivider    OSType { "divi" }
  94.         #define kParameterItemStaticText    OSType { "stat" }
  95.         #define kParameterItemDragImage        OSType { "imag" }
  96.  
  97.  
  98.  
  99.         // flags valid for lines and groups
  100.         #define kGraphicsNoFlags             long { "0" }
  101.         #define kGraphicsFlagsGray             long { "1" }
  102.  
  103.         // flags valid for groups
  104.         #define kGroupNoFlags                         long { "0" }
  105.         #define kGroupAlignText                     long { "65536" }
  106.         #define kGroupSurroundBox                     long { "131072" }
  107.         #define kGroupMatrix                         long { "262144" }
  108.         #define kGroupNoName                        long { "524288" }
  109.         #define kGroupSurroundWithGray                long { "131073" }
  110.         #define kGroupSurroundWithGrayAlign            long { "196609" }
  111.         #define kGroupSurroundWithGrayNoName        long { "655361" }
  112.         #define kGroupSurroundWithGrayAlignNoName    long { "720897" }
  113.         
  114.         // flags valid for popup/radiocluster/checkbox/control
  115.         #define kDisableControl            long { "1" }
  116.         #define kDisableWhenNotEqual    long { "1" }
  117.         #define kDisableWhenEqual        long { "17" }
  118.         #define kDisableWhenLessThan    long { "33" }
  119.         #define kDisableWhenGreaterThan    long { "49" }
  120.  
  121.         // flags valid for popups
  122.         #define kPopupStoreAsString        long { "65536" }
  123.  
  124. #define kParameterDataUsage             'use '
  125.  
  126.         #define kParameterUsagePixels        OSType { "pixl" }
  127.         #define kParameterUsageRectangle    OSType { "rect" }
  128.         #define kParameterUsagePoint        OSType { "xy  " }
  129.         #define kParameterUsage3DPoint        OSType { "xyz " }
  130.         #define kParameterUsageDegrees        OSType { "degr" }
  131.         #define kParameterUsageRadians        OSType { "rads" }
  132.         #define kParameterUsagePercent        OSType { "pcnt" }
  133.         #define kParameterUsageSeconds        OSType { "secs" }
  134.         #define kParameterUsageMilliseconds    OSType { "msec" }
  135.         #define kParameterUsageMicroseconds    OSType { "µsec" }
  136.         #define kParameterUsage3by3Matrix    OSType { "3by3" }
  137.  
  138. #define kParameterDataDefaultItem         'dflt'
  139. #define kParameterInfoLongName             '©nam'
  140. #define kParameterInfoCopyright         '©cpy'
  141. #define kParameterInfoDescription         '©inf'
  142. #define kParameterInfoWindowTitle         '©wnt'
  143. #define kParameterInfoPicture             '©pix'
  144. #define kParameterInfoManufacturer         '©man'
  145. #define kParameterInfoIDs                 1
  146.  
  147.  
  148. type 'cdec' {
  149.     hex string;
  150. };
  151.  
  152.  
  153. type 'cdci' {
  154.     pstring[31];
  155.     hex integer    version;
  156.     hex integer    revlevel;
  157.     hex longint    vendor;
  158.     hex longint    decompressFlags;
  159.     hex longint    compressFlags;
  160.     hex longint    formatFlags;
  161.     byte        compressionAccuracy;
  162.     byte        decompressionAccuracy;
  163.     integer        compressionSpeed;
  164.     integer        decompressionSpeed;
  165.     byte        compressionLevel;
  166.     byte        resvd;
  167.     integer        minimumHeight;
  168.     integer        minimumWidth;
  169.     integer        decompressPipelineLatency;
  170.     integer        compressPipelineLatency;
  171.     longint        privateData;
  172. };
  173.  
  174.  
  175. #define    compressorComponentType            'imco'
  176. #define    decompressorComponentType        'imdc'
  177.  
  178.  
  179. /* Resource type used for the creation of parameter description atoms */
  180. type 'atms' {
  181.     longint;    // root atom count
  182.     
  183.     array AtomArray {
  184.         literal longint;        // atomType
  185.         longint;                // atomID
  186.         longint noChildren = 0;    // children
  187.         longint =  $$CountOf(AtomData);
  188.         array AtomData {
  189.             switch {
  190.             case long:
  191.                 key literal longint = 'long';
  192.                 pstring;            // data
  193.             case short:
  194.                 key literal longint = 'shrt';
  195.                 pstring;            // data
  196.             case noMininumFixed:
  197.                 key literal longint = 'nmiF';
  198.                 pstring = "";        // data
  199.             case noMaximumFixed:
  200.                 key literal longint = 'nmaF';
  201.                 pstring = "";        // data
  202.             case noMininumDouble:
  203.                 key literal longint = 'nmiD';
  204.                 pstring = "";        // data
  205.             case noMaximumDouble:
  206.                 key literal longint = 'nmaD';
  207.                 pstring = "";        // data
  208.             case fixed:
  209.                 key literal longint = 'fixd';
  210.                 pstring;            // data
  211.             case double:
  212.                 key literal longint = 'doub';
  213.                 pstring;            // data
  214.             case string:
  215.                 key literal longint = 'str ';
  216.                 pstring;            // data
  217.             case OSType:
  218.                 key literal longint = 'osty';
  219.                 pstring;            // data
  220.             };
  221.             
  222.         };
  223.     };
  224. };
  225.  
  226.  
  227. #endif /* __IMAGECODEC_R__ */
  228.  
  229.